home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / OpenDoc / Headline / Headline / DartmouthODUtils.cp < prev    next >
Text File  |  1995-04-27  |  1KB  |  57 lines

  1. // OpenDoc utilities
  2. // by Joe Francis and Jim Matthews
  3. // Dartmouth College
  4.  
  5. #include <ODTypesB.xh>
  6. #include <StorageU.xh>
  7. #include <StorUtil.h>
  8.  
  9. #include "DartmouthODUtils.h"
  10.  
  11. //----------------------------------------------------------------------------------------
  12. // SetValueEOF
  13. //----------------------------------------------------------------------------------------
  14.  
  15. void SetValueEOF(Environment* ev, long theEOF, ODStorageUnit* su)
  16. {
  17.     /* this doodad truncates a value in a storage unit at the appropriate point */
  18.     ODULong oldLength = su->GetSize(ev);
  19.     ODULong oldOffset = su->GetOffset(ev);
  20.     char    junk[1];
  21.     
  22.     if (oldLength<theEOF)
  23.     {
  24.         su->SetOffset(ev,oldLength);
  25.         StorageUnitSetValue(su, ev, theEOF-oldLength, junk);
  26.         su->SetOffset(ev,oldOffset);
  27.     }
  28.     else if (oldLength>theEOF)
  29.     {
  30.         su->SetOffset(ev,(ODULong)theEOF);
  31.         su->DeleteValue(ev, oldLength-theEOF);
  32.         oldOffset = (oldOffset>theEOF) ? theEOF : oldOffset;
  33.         su->SetOffset(ev,oldOffset);
  34.     }
  35. }
  36.  
  37. //----------------------------------------------------------------------------------------
  38. // SetODByteArray
  39. //----------------------------------------------------------------------------------------
  40. void SetODByteArray(long max, long len, void *data, ODByteArray *array)
  41. {
  42.     array->_maximum = max;
  43.     array->_length = len;
  44.     array->_buffer = (octet *) data;
  45. }
  46.  
  47. void *GetODByteArrayData(ODByteArray *array)
  48. {
  49.     return (void *) array->_buffer;
  50. }
  51.  
  52. long GetODByteArrayLen(ODByteArray *array)
  53. {
  54.     return array->_length;
  55. }
  56.  
  57.